package cn.trigram.example.designpattern.template;

/**
 * 抽象模板方法模式
 * 需要使用抽象类，在抽象类中定义好基本步骤，将其中某些步骤推迟到子类实现
 */
public abstract class AbstractTemplate {

  protected Object data;

  /**
   * 定义算法步骤的模板方法
   */
  public void dealData() {

    getData();
    calcData();
    printData();
  }

  /**
	 * 下面是普通方法，可能已经实现，也可能需要子类实现
	 * */
  public abstract void getData();

	public abstract void calcData();

	public void printData() {

    System.out.println(data);
  }

}